package com.sumfun.blog.tool;

public class HtmlUtils {

    // 私有构造函数，防止实例化工具类
    private HtmlUtils() {}

    /**
     * 去除HTML标签，并处理残缺标签和多余空格
     *
     * @param html 输入的HTML字符串
     * @return 处理后的纯文本字符串
     */
    public static String parseHtml(String html) {
        // 首先去除包含内容的标签，然后用空字符串去除残缺的标签
        html = html.replaceAll("<.*?>", " ").replaceAll("<.*?", "").replaceAll("\\s+", " ").trim();
        // 如果最终结果为空字符串，则返回一个默认的占位符
        return html.isEmpty() ? "..." : html;
    }

    /**
     * 去除HTML标签，并截取指定长度的文本
     *
     * @param html 输入的HTML字符串
     * @param length 指定截取的文本长度
     * @return 截取后的文本，或提示信息
     */
    public static String parseHtmlAndTruncate(String html, int length) {
        // 先去除HTML标签
        String plainText = parseHtml(html);
        
        // 如果原始HTML去除标签后的文本长度小于指定长度，则直接返回
        if (plainText.length() <= length) {
            return plainText;
        }
        
        // 否则，截取指定长度的文本，并添加省略号
        return plainText.substring(0, length) + "...";
    }
}